This invention relates to a method of memory control and process control of a computing system, and particularly to a method of reducing the power consumption of a main memory taking account of program execution and process control.
In an ordinary computing system, power is consumed by the operation of the hardware with which the computing system is provided. Hardware means the processor, main memory (memory), secondary storage and Input/Output (I/O) devices, for example.
In case of which a computing system consumes power in large amount, a large amount of heat is generated simultaneously. For this reason, a cooling installation for removing the heat generated by the computing system must be installed. Apart from the cost of the power consumed by the computing system, the cooling installation also incurs costs.
A system design is therefore required which takes account of the power consumed by the computing system and the performance of the computing system. From the viewpoint of saving battery power, it is also important to reduce the power consumed by the operation of the hardware in modular devices.
The main memory with which a computing system is provided is one of the hardware devices which generally consume power in large amounts. For example, computing systems such as large scale computing systems and super parallel computing systems have very high capacity main memories. Hence, of all the power consumed by the hardware in the computing system, the proportion consumed by the main memory device is large.
Today, main memories in computer servers, personal computers and modular devices have increasingly high capacities.
However, while control is commonly executed to reduce the power consumed by the processor and peripheral devices, control is not usually executed to reduce the power consumed by the main memory. Henceforth, it will thus be necessary to also reduce the power consumed by the main memory.
In general, the main memory stores commands and data for the processor to execute processing. Specifically, the processor loads an operating system (hereafter, OS) and application software stored by a secondary storage, into the main memory. The processor then extracts commands included in the OS and application software which were loaded into the main memory, and executes processing.
At this time, in case of which the processor executes computational processing, the main memory is used also as a means to store data required for the processor to execute computations, data for computational processing, and computation results.
It may not be absolutely necessary to load commands and data required for executing process of the processor from the secondary storage device into the main memory. For example, In case of which the plural computers with which a computing system is provided are mutually connected by a network, commands and data required for executing process of the processor are stored by the main memory via the network. Also, if the computers with which a computing system is provided are mutually connected by high-speed I/O devices, commands and data required for executing process of the processor are stored by the main memory via the high-speed I/O devices.
The main memory in a computing system records data by whether or not a charge has accumulated in a capacitor. Specifically, in case of which the capacitor stores a charge, “1” is stored, and in case of which the capacitor does not store a charge, “0” is stored. An operation (refresh) for maintaining the data stored by the main memory must be executed.
The main memory usually has plural power control management modes, and can usually change to another mode via a memory controller or the like. For example, it can change from a normal mode to a low power mode.
In the low power mode, although power consumption is low compared with the normal mode, the speed with which the processor accesses the memory decreases. The main memory may be, for example, a DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory).
The power mode of the main memory is also changed by the memory controller in units of memory rank divided by the main memory. A memory rank is a unit in which the memory controller can control power independently.
In order to reduce the power consumed by the computing system, the memory controller has a logical/physical address translation table, and the memory controller operates the translation table so that the used memory area can be concentrated in any desired memory device. Alternatively, the operating system manages an unused memory list for each memory device, and allocates memory starting from memory devices which have little unused memory (memory usage is high). By this process, the memory controller changes over the power mode of an unused memory device to the low power mode (e.g., U.S. Pat. No. 6,954,837).
A technique is also known wherein only a memory device in which data is stored is periodically refreshed, in order to reduce the power consumed by the memory device (e.g., U.S. Pat. No. 6,215,714).
In a parallel computing system, from the viewpoint of solving the problem of the heat generated in the computing system, and energy-saving, temperature distribution information is generated based on the temperature information detected by a temperature sensor. A method is known for executing the process of job scheduling of the computers in a parallel computing system based on the generated temperature distribution information (e.g., JP 2004-126968 A).
On the other hand, in a technique for reducing the power consumed by the processor, a command for operating a computing circuit is first detected, and the computing circuit to be operated is activated first. Another technique is known where, after computations by the computing circuit are completed, the activated computing circuit is inactivated (e.g., JP 2005-235204 A).